package com.liuyc.lib.common.base

import android.os.Bundle
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity

/**
 * BaseActivity
 * 基础类
 * 静态页，不涉及数据变更等操作的 纯UI 操作 可以不使用 MVVM 模式 直接继承这个类使用
 * 非静态，有数据变更操作 必须继承 ViewBaseActivity
 *刘隽
 */
abstract class BaseActivity(@LayoutRes private val layoutResID: Int) : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)


//        setContentViewBefore()
        setContentView(layoutResID)

        initViewBefore()
        initView()
        initViewAfter()
    }


    /**
     * 在 调用 setContentViewBefore 之前触发
     * 需要触发 setContentView  之后可以
     * 在  initViewBefore() 方法中实现
     */
    abstract fun setContentViewBefore()


    /**
     * 在initView 之前的操作
     * 此地  可以获取到 从其他页面传递的参数等
     */
    abstract fun initViewBefore()

    /**
     * 初始化 视图
     */
    abstract fun initView();

    /**
     * initView 之后的操作，
     * 可以设置 视图元素 需要的数据，监听方法等操作
     */
    abstract fun initViewAfter();


}